3.9 获取form表单上传的多个文件
可以同时上传多个文件。
前端上传的多个文件使用的是不同的key
Html8
< html >
< head >
< meta charset="UTF-8" >
< meta http-equiv="X-UA-Compatible" content="ie=edge" >
< title > Document < /title >
< /head >
< body >
< form action="http://127.0.0.1:8000/app03/test8" method="post" enctype="multipart/form-data" >
< P > 请选择文件: < input type="file" name="file22" > < /P >
< P > 请选择文件: < input type="file" name="file33" > < /P >
< input type="submit" value="上传" >
< /form >
< /body >
< /html >
Urls:
from django.urls import path
from . import views
urlpatterns = [
path("test",views.test),
#一旦调用test1,那么kwargs将会以关键字的a=100,b=200这样的形式传给test1
path("test1", views.test1,kwargs={"a":100,"b":200}),
#test2(request,year,month
path("test2/ < year > / < month > ", views.test2),
path("test3", views.test3),
path("test5", views.test5),
path("test6", views.test6),
path("test7", views.test7),
path("test8", views.test8),
]
views:
后端视图。使用request.FILES.get(“”)接收数据
def test8(request):
for key in ["file22","file33"]:
file=request.FILES.get(key)
with open(file.name,"wb") as f:
f.write(file.read())
return HttpResponse("显示form")
返回:
上传两个文件到url同文件夹下面
[26/May/2024 16:20:00] "POST /app03/test8 HTTP/1.1" 200 10
[26/May/2024 16:21:38] "POST /app03/test8 HTTP/1.1" 200 10
前端上传的多个文件使用的是相同的key
URL
from django.urls import path
from . import views
urlpatterns = [
path("test",views.test),
#一旦调用test1,那么kwargs将会以关键字的a=100,b=200这样的形式传给test1
path("test1", views.test1,kwargs={"a":100,"b":200}),
#test2(request,year,month
path("test2/ < year > / < month > ", views.test2),
path("test3", views.test3),
path("test5", views.test5),
path("test6", views.test6),
path("test7", views.test7),
path("test8", views.test8),
path("test9", views.test9),
]
views:
def test9(request):
print(request.FILES)
for file in request.FILES.getlist("file22"):
with open(file.name,"wb") as f:
f.write(file.read())
return HttpResponse("显示form")
html9:
< html >
< head >
< meta charset="UTF-8" >
< meta http-equiv="X-UA-Compatible" content="ie=edge" >
< title > Document < /title >
< /head >
< body >
< h1 > 上传文件 < /h1 >
< form action="http://127.0.0.1:8000/app03/test9" method="post" enctype="multipart/form-data" >
< P > 请选择文件: < input type="file" name="file22" multiple > < /P >
< input type="submit" value="上传" >
< /form >
< /body >
< /html >
返回:
上传选择的多个文件到url同文件夹下面
< MultiValueDict: {'file22': [ < InMemoryUploadedFile: fido2.dll (application/x-msdownload) > , < InMemoryUploadedFile: fido2.lib (application/octet-stream) > ]} >
[26/May/2024 16:46:51] "POST /app03/test9 HTTP/1.1" 200 10